package cn.com.cdb.ldms.utils;

import io.swagger.v3.oas.annotations.media.Schema;

import java.lang.reflect.Field;
import java.util.LinkedHashMap;
import java.util.Map;

public class SchemaUtils {
    /**
     * 获取实体类所有字段的名称和 @Schema 的 description 值
     *
     * @param clazz 实体类的 Class 对象
     * @return Map<字段名, description值>（按字段声明顺序保持顺序）
     */
    public static Map<String, String> getFieldDescriptions(Class<?> clazz) {
        Map<String, String> result = new LinkedHashMap<>();
        Field[] fields = clazz.getDeclaredFields();

        for (Field field : fields) {
            Schema schema = field.getAnnotation(Schema.class);
            if (schema != null) {
                String description = schema.description();
                result.put(field.getName(), description);
            }
        }
        return result;
    }
}
